package at.ticketline.dao;

import java.util.Collection;

public interface AuffuehrungDaoTestConfiguration {	
	/**
	 * @see AbstractAuffuehrungDaoTest#testFindSingleCheapest_OneCheapestExists
	 * @see AuffuehrungDaoTestConfiguration#getAuffuehrungWithSingleCheapestPlatz_platzId
	 * @return Auffuehrung zurueck bei der der billigste Platz eindeutig bestimmt ist.
	 */
	public abstract int getAuffuehrungWithSingleCheapestPlatzId();
	
	/**
	 * @see AbstractAuffuehrungDaoTest#testFindSingleCheapest_OneCheapestExists
	 * @see AuffuehrungDaoTestConfiguration#getAuffuehrungWithSingleCheapestPlatzId()
	 * @return PlatzId des Billigsten Platzes
	 */
	public abstract int getAuffuehrungWithSingleCheapestPlatz_platzId();
	
	
	/**
	 * @see AbstractAuffuehrungDaoTest#testFindSingleCheapest_NoPlaceExists()
	 * @see AbstractAuffuehrungDaoTest#testFindDoubleCheapest_NoPlaceExists()
	 * @return Auffuehrung ohne Plaetzen
	 */
	public abstract int getAuffuehrungWithNoPlatz();

	/**
	 * @see AbstractAuffuehrungDaoTest#testFindSingleCheapest_MultipleCheapestExist()
 	 * @see AuffuehrungDaoTestConfiguration#getAuffuehrungWithMultipleCheapestPlatz_platzIds
	 * @return Auffuehrung zurueck bei der der billigste Platz nicht eindeutig bestimmt ist.
	 */
	public abstract int getAuffuehrungWithMultipleCheapestPlatzId();
	
	/**
	 * @see AbstractAuffuehrungDaoTest#testFindSingleCheapest_MultipleCheapestExist()
	 * @see AuffuehrungDaoTestConfiguration#getAuffuehrungWithMultipleCheapestPlatzId
	 * @return PlatzIds der billigsten Plaetze
	 */
	public abstract Collection<Integer> getAuffuehrungWithMultipleCheapestPlatz_platzIds();

	/**
	 * @author Gilbert Fritz
	 */
	public abstract int getAuffuehrungWith5PlacesPricedLesser151();
	
	public abstract int getAuffuehrungWith1PlacePricedLesser101();
	
	public abstract int getAuffuehrungWithMultipleBestPlacesPriced150();
	
	public abstract int getAuffuehrungWithOneBestPlacePriced150();
	/**
	 * @see AbstractAuffuehrungDaoTest#testFindSingleCheapest_OnePlaceExists()
	 * @see AuffuehrungDaoTestConfiguration#getAuffuehrungWithExactlyOnePlace_platzId()
	 * @return Auffuehrung mit exakt einem Platz
	 */
	public abstract int getAuffuehrungWithExactlyOnePlace();
	
	/**
	 * @see AbstractAuffuehrungDaoTest#testFindSingleCheapest_OnePlaceExists()
	 * @see AuffuehrungDaoTestConfiguration#getAuffuehrungWithExactlyOnePlace() 
	 * @return Platz Id des einzig existierend Platzes der Veranstaltung mit nur einem Platz
	 */
	public abstract int getAuffuehrungWithExactlyOnePlace_platzId();
	

	/**
	 * @author Lukas Pacher
	 */
	
	public abstract int getAuffuehrungWithCountNull();
	
	public abstract int getAuffuehrungWithCount();
	
	public abstract int getAuffuehrungWithMoreThanOnePlaces();
	
}
